/**
 * 构造方法（构造器）constructor
 * 作用：用于对象初始化，而不是创建对象
 */
/*
创建对象的四步：1，分配对象空间，并将对象成员变量初始化为0或空
             2，执行属性值的显示初始化
             *3，执行构造方法
             4，返回对象的地址给相关变量
 */
/*
[修饰符] 类名（形参列表）{
    n条语句
}
 */
/*
构造器通过 new 关键字调用
构造器虽然有返回值，但是不能定义返回值类型（返回值类型基本是本类），不能在构造器里使用 return 返回某个值
如果没有定义构造器，则编译时会自动定义一个无参的构造方法，如果定义了，则编译器不会自动添加
构造器的方法名必须和类名一致
 */
    //定义一个点，表示二维空间，提供该点到另一点的距离方法

public class Point {
        double x;
        double y;

    //构造器     构造器的方法名必须和类名一致
   Point(double _x,double _y){ //直接传参
        x = _x;
        y = _y;
    }
    //计算两点距离
    public double getDistance(Point p){
       //　void 关键字指定方法不返回值,其它的情况都要return
       /* double d = Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));　
        return d;*/
        return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));//Math.sqrt是开方的意思
    }
    public static void main(String[] args) {
        //创建对象
        Point p1 = new Point(3.0,4.0);
        //另一个点
        Point origin = new Point(0.0,0.0);
        System.out.println(p1.getDistance(origin));
    }
}
